﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdbool.h>
//int num = 10;
//int main()
//{
//    int num = 1;
//    printf("num = %d\n", num);
//    return 0;
//}
//变量：经常变化的量，形式:类型 变量名；在创建变量的同时给它一个初始值叫做初始化，给已经存在的变量一个值叫做赋值
//int main()
//{
//	unsigned int age = 23;//定义一个无符号整型变量，变量名为age，给一个初始值23-初始化
//	age = 27;//给变量age赋一个值27-赋值
//	int b = 435;//int=signed int 定义一个有符号整型变量，命名为b
//	char ch = 'a';//字符型变量
//	double weight = 1.65;//双精度浮点型变量
//	float score = 3.14f;//单精度浮点型变量
//	bool flag = 1;//布尔类型变量
//	printf("age=%u\n", age);//打印无符号整型变量-%u
//	printf("b=%d\n", b);//打印有符号整型变量-%d
//	return 0;
//}

//变量分类：1.全局变量：大括号外面定义的，整个工程均可使用；2.局部变量：大括号内部定义的，只在局部范围使用
//int global = 2023;//全局变量-在main函数外面定义
//int main()
//{
//	int local = 2018;//局部变量 -在main函数内部定义
//	printf("%d\n", local); //2018-前一句定义了
//	printf("%d\n", global);//2023-开头就定义了
//	return 0;
//}

//若局部变量和全局变量同名时，局部变量优先使用！  
//int n = 1000;//全局变量
//int main()
//{
//	int n = 100;//局部变量
//	printf("%d\n" ,n);//打印的结果是多少呢？-100
//	return 0;
//}

//算术操作符（双目运算符/双目运算符）：➕（加），➖（减），*（乘），/（除），%（取余数
// 
//1.加法（➕），减法（➖）
//int main()
//{
//	printf("%d\n", 12 + 13);//+25
//	int x = 3;
//	int y = 7;
//	printf("%d\n", x+y); //+10
//	printf("%d\n", x-y); //-4
//	return 0;
//}

//2.乘法（*）
//int main()
//{
//	printf("%d\n", 3*5);//+15
//	int x = 3;
//	int y = -7;
//	printf("%d\n", x * y);//-21
//	printf("%d\n", x * 7);//+21
//	return 0;
//}

//3.除法（/）:若两边都是整数，进行整数除法得到整数-%d，如果整除直接得整数，若不是整除，得商；
//若至少一边为浮点数，进行浮点数除法得浮点数-%f,所得浮点数默认到小数点后6位
//int main()
//{
//	
//	printf("%d\n",9/3 ); //整数除法➕整除，得3
//	printf("%d\n", 10 / 4); // 整数除法非整除，得商，由于10➗4=2余2，则得2 
//	printf("%f\n", 10.0 / 4); // 浮点数除法，得2.500000 
//	printf("%f\n", 10 / 4.0); // 浮点数除法，得2.500000
//	printf("%f\n", 10.0/4.0); // 浮点数除法，得2.500000
//	return 0;
//}

//int main()
//{
//	int score = 5;
//	score = (score / 20.0) * 100; //(score/20.0）进行浮点数除法得5/20=0.25，然后✖️100=25
//	printf("score=%d\n", score);//score=25
//	return 0;
//}

//取模/余运算（%）：返回两个整数相除得到的余数，只用于整数，不用于浮点数
//int main()
//{
//	int x = 6 % 4; // 由于6➗4=1（商）...2(余数)，所以结果是2
//	printf("%d\n", x);
//	return 0;
//}
//若操作数存在负整数，则结果正负号由第一个运算数的正负号决定
//int main()
//{
//	printf("%d\n", 11 % -5); // 1 
//	printf("%d\n",-11 % -5); // -1 
//	printf("%d\n",-11 % 5); // -1 
//	return 0;
//}

//赋值操作符：=和复合赋值符，赋值操作符=可以随时给变量赋值
//复合赋值符：+=，-=，*=,/=...可以简化赋值操作
//int main()
//{
//	int a = 10;//初始化
//	a = a + 3;//给变量a➕3，等价于a+=3；
//	a = a - 2;//给变量a➖2，等价于a-=2;
//}
//单目操作符：++，--，+（正），-（负）
//++，分为前置++和后置++
//int main()
//{
//	int a = 10;
//	int b = ++a;//a=11,b=11
//	//前置++口诀：先➕1后使用
//	//a = a + 1=11；b=a
//	printf("a=%d \n", a);//a=11
//	printf("b=%d \n", b);//b=11
//	return 0;
//}

//int main()
//{
//	int a = 10;
//	int b = a++;//a=10,b=11
//	//后置++口诀：先使用后➕1
//	//b=a=10;a=a+1=11
//	printf("a=%d \n", a);//a=11
//	printf("b=%d \n", b);//b=10
//	return 0;
//}

//--，分为前置--和后置--
//int main()
//{
//	int a = 10;
//	int b = --a;//a=9,b=8
//	//前置--口诀：先➖1后使用
//	//a = a - 1=9；b=a
//	printf("a=%d \n", a);//a=9
//	printf("b=%d \n", b);//b=9
//	return 0;
//}

//int main()
//{
//	int a = 10;
//	int b = a--;//a=10,b=10
//	//后置--口诀：先使用后➖1
//	//b=a=10;a=a-1=9
//	printf("a=%d \n", a);//a=9
//	printf("b=%d \n", b);//b=10
//	return 0;
//}
//++和++综合运用
//int main()
//{
//	int a = 10;
//	printf("a=%d \n", a);//a=10
//	printf("a=%d \n",--a);//a=9
//	printf("a=%d \n", ++a);//a=10
//	printf("a=%d \n", a--);//a=10
//	printf("a=%d \n",a++);//a=9
//	printf("a=%d \n", a);//a=10
//	return 0;
//}

//强制类型转换：初始化的值与变量类型不对应时使用
//int a = 3.14;//a的是int类型, 3.14是double类型，两边的类型不⼀致，编译器会报警告
int main()
{
	int a = (int)3.14;//意思是将3.14强制类型转换为int类型，这种强制类型转换只取整数部分
	printf("%d\n", a);
	return 0;
}





